
import { createApp } from 'vue';
import { createPinia } from 'pinia';
import ElementPlus from 'element-plus';
import 'element-plus/dist/index.css';
import * as ElementPlusIconsVue from '@element-plus/icons-vue';
// 修复导入方式
import zhCn from 'element-plus/es/locale/lang/zh-cn';

import App from './App.vue';
import router from './router';
import { useUserStore } from './stores/user';

// 创建应用实例
const app = createApp(App);

// 使用Pinia状态管理
const pinia = createPinia();
app.use(pinia);

// 使用Vue Router
app.use(router);

// 注册Element Plus，设置为中文
app.use(ElementPlus, {
  locale: zhCn,
  size: 'default',
});

// 注册所有Element Plus图标
for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
  app.component(key, component);
}

// 初始化应用
const initApp = async () => {
  // 初始化用户状态
  const userStore = useUserStore();
  await userStore.init().catch(() => {
    console.log('初始化用户状态失败，可能未登录');
  });

  // 挂载应用
  app.mount('#app');
};

initApp();
